<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="created" content="2018-10-23T06:18:10.521000000">
    <meta name="changed" content="2020-01-07T06:18:42.262000000">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="Content-Language" content="pt">
    <title>
      Atrasos em porta
    </title>
    <link rel="stylesheet" type="text/css" href="..\..\style.css">
  </head>
  <body>
    <div class="maindiv">
      <h1>
        Atrasos em porta
      </h1>
      <p>
        Como um exemplo do nível de sofisticação do algoritmo do Logisim, considere o circuito a seguir.
      </p>
      <p align="center">
        <img class="notscal" src="../../../../img-guide/prop-const0.png" alt="#########">
      </p>
      <p>
        "Obviamente" sempre terá saídas em 0. Mas, na verdade, as portas não reagem instantaneamente às suas entradas, e nem tampouco o Logisim. Como resultado, quando as entradas nesse circuito variam de 0 para 1, a porta AND brevemente verá duas entradas iguais a 1, e irá emitir um breve 1. Você não vai vê-lo na tela. Mas esse efeito é perceptível quando se utilizar a saída da porta AND como entrada de <i>clock</i> de um <i>flip-flop</i> tipo D.
      </p>
      <p align="center">
        <img class="notscal" src="../../../../img-guide/prop-using-const0.png" alt="#########">
      </p>
      <p>
        Se testar a entrada, variando de 0 para 1, isso levará a um valor instantâneo igual a 1 que irá para o <i>flip-flop</i> tipo D e, portanto, o valor do <i>flip-flop</i> irá alternar cada vez que o circuito de entrada for de 0 para 1.
      </p>
      <p>
        Cada componente tem um atraso associado a ele. Componentes mais sofisticados construídos em Logisim tendem a ter atrasos maiores, mas esses atrasos são um tanto arbitrários e podem não refletir a realidade.
      </p>
	  <p align="center">
        <img class="notscal" src="../../../../img-guide/propagat.gif" alt="#########"><br>
		Logisim world<br><br>
		<img class="notscal" src="../../../../img-guide/reallife2.png" alt="#########"><br>
		Real world
      </p>
      <p>
        Do ponto de vista técnico, é relativamente fácil lidar com esse nível de sofisticação em um único circuito. Lidar com atrasos de porta em subcircuitos, porém, é um pouco mais complexo; o Logisim tem a pretensão de abordar isso corretamente, colocando todos os valores primitivos de propagação do componente em uma programação única, independentemente do subcircuito em que o componente se encontrar.
      </p>
      <p>
        (Via a opção <a href="../opts/index.html">Opções de projeto</a> na janela <a guia="" href="../opts/opts-simulate.html">Simulação</a>, você poderá configurar o Logisim para adicionar um atraso aleatório, ocasional, para a propagação de um componente. Isso tem o objetivo de simular a desigualdade de circuitos reais. Em particular, um <i>latch</i> SR construído com duas portas NOR irá oscilar sem essa aleatoriedade, já que ambas as portas irão processar suas entradas em sincronia. Essa aleatoriedade é desabilitada por padrão.)
      </p>
      <p>
        Notar que pararei de dizer o Logisim sempre tratará bem atrasos de porta. Mas pelo menos ele tentará.
      </p>
      <p>
        <strong>Próximo:</strong> <a href="oscillate.html">Erros de oscilação</a>.
      </p>
    </div>
  </body>
</html>
